package com.sqfw.project.wpReport.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sqfw.framework.aspectj.lang.annotation.Excel;
import com.sqfw.framework.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;
import java.util.Set;

@NoArgsConstructor
@AllArgsConstructor
@Data
public class WpInfoDetail extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @Excel(name = "序号")
    private Integer index;

    /** 主键id */
    private String scid;

    /** 工单来源 */
    @Excel(name = "工单来源")
    private String scidType;

    //五大板块
    @Excel(name = "五大板块")
    private String fiveMajorModules;

    /** 工单编号 */
    @Excel(name = "工单编号")
    private String wpid;

    //12345工单编号
    @Excel(name = "12345工单")
    private String tsWpid;

    /** 来电类别 */
    @Excel(name = "工单类型")
    private String wpType;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发起时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date starttime;

    @Excel(name = "诉求联系人")
    private String customerName;

    @Excel(name = "联系电话1")
    private String phoneno;

    @Excel(name = "联系电话2")
    private String mobile;

    @Excel(name = "所在区域")
    private String districtName;

    /** 内容描述 */
    @Excel(name = "内容描述")
    private String summary;

    //工单当前状态
    @Excel(name = "当前状态")
    private String nextState;

    /** 处理描述 */
    @Excel(name = "处理描述")
    private String lastmessage;

    @Excel(name = "联系地址")
    private String address;

    /** 是否为退单 */
    @Excel(name = "是否退单")
    private String backState;

    //工单是否有收回记录（0，否   1，是）
    @Excel(name = "是否收回")
    private String recoverState;

    /* 是否解决*/
    @Excel(name = "是否解决")
    private String solved;

    //是否流转
    @Excel(name = "是否流转")
    private String endState;

    //主要单位名称
    @Excel(name = "主办单位")
    private String mainUnitName;

    @Excel(name = "协办单位1")
    private String assistUnit1Name;

    @Excel(name = "协办单位2")
    private String assistUnit2Name;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "流转工单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endStateTime;

    /* 流转工单截止时间*/
    @Excel(name = "流转工单截止时间")
    private String timeBoundry;

    @Excel(name = "承办单位处理内容")
    private String message;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "承办单位办结时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date completionDate;

    @Excel(name = "一级内容分类")
    private String class1Name;

    @Excel(name = "二级内容分类")
    private String class2Name;

    @Excel(name = "三级内容分类")
    private String class3Name;

    @Excel(name = "四级内容分类")
    private String class4Name;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "回访时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date visitTime;

    @Excel(name = "短信回访满意度")
    private String sendSatis;

    /* 满意度 回访*/
    @Excel(name = "回访满意度")
    private String issatisfied;

    /* 回访内容*/
    @Excel(name = "回访内容")
    private String visitResult;

    @Excel(name = "回访人姓名")
    private String visitCode;

    /* 不满意原因*/
    @Excel(name = "不满意原因")
    private String issatisfiedReason;

    /** 二次处理原因 */
    @Excel(name = "二次处理原因")
    private String disposeCause;

    /* 满意度  录音*/
    @Excel(name = "录音满意度")
    private String satisfaction;

    @Excel(name = "坐席姓名")
    private String nickName;

    //坐席工号
    @Excel(name = "坐席工号")
    private String code;

    @Excel(name = "是否参评")
    private String evaluateSatis;

    //工单标签
    @Excel(name = "工单标签")
    private String dictData;

    /* 答复方式*/
    private String reasonable;

    //是否回访 1回访，0未回访
    private String visitState;

    //主办部门id
    private String deptLevel2;

    //承办单位1id
    private String deptLevel2vice1;

    //承办单位2id
    private String deptLevel2vice2;

    /** 类别 */
    private String class1;

    private String class2;

    private String class3;

    private String class4;

    private String unEndState;

    private String backStatusType;

    private List<String> fiveMajorModulesList;

    private List<String> codes;

    private List<String> visitCodes;


    /*前端传来的分类数组，查询需要*/
    private List<String> classAll;

    //内容类别查询字段
    private List<List<String>> classAllFind;

    private String district;

    private String street;

    private String committee;

    private Date visitBegainTime;

    private Date visitEndTime;

    //延期状态
    private String extensionStatus;

    private String specialState;

    /*1245是否督办*/
    private String isSupervision;

    private String priority;

    /** 是否重复 */
    private String isrepeat;

    /** 是否紧急（工单级别） */
    private String hurryFlag;

    /** 是否答复 */
    private String isReply;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date flowBegainTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date flowEndTime;


    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date visitBeginTime;

    private Set<String> wpIdsByFlowTime;

}
